home *** CD-ROM | disk | FTP | other *** search
- Inhaltsverzeichnis
- ==================
-
- 0 Einleitung
-
- 1 Programmdaten
-
- 2 Dateien auswählen
-
- 2.1 Eine Datei auswählen
- 2.2 Mehrere Dateien auswählen
-
- 3 Das Menü
-
- 3.1 Aufruf per Tastatur
- 3.2 Alles für Dateien
- 3.3 Programme aufrufen
- 3.4 Makefile
- 3.5 Drucken
- 3.6 Sonstiges
-
- 4 Verwendete Literatur
-
-
- 0 Einleitung
- ==========
-
- Da ich fast alle meine Programme in 'C' schreibe, habe ich mich
- oft darüber geärgert, daß man zum Kopieren oder Drucken die alte
- Shell von Megamax-C verlassen mußte. Auch das Makefile-Handling
- fand ich verbesserungswürdig.
-
- So kam ich schließlich, angeregt durch einige Artikel in der 'ST-
- Computer' auf die Idee, mir eine eigene Shell zu schreiben. Diese
- Shell sollte alle Funktionen, die man zur Programmentwicklung be-
- nötigt, auf komfortable Weise zur Verfügung stellen.
-
- So entstand schließlich dieses Programm.
-
- Leider ist es mir nicht gelungen. das Geheimnis des Libary-Files
- zu lüften, so daß ich auf diese Funktion leider verzichten mußte.
- Falls mir jemand dabei weiterhelfen könnte...
-
- Trotz sorgfältigen Testens können in einem Programm dieser Größen-
- ordnung immer noch einige Fehler versteckt sein. Für entsprechende
- Hinweise oder Anregungen, wie man es besser machen könnte, wäre
- ich sehr dankbar.
-
- Falls Ihnen dieses Programm gefällt und/oder Sie sich nur einmal
- anschauen wollen, wie man so etwas (nicht) programmiert, schicke
- ich Ihnen für 30,- DM ein voll dokumentiertes Listing (über 6500
- Zeilen) auf Diskette zu.
-
- Und nun wünsche ich Ihnen viel Erfolg für das Entwickeln Ihrer
- Programme mit Megamax-C und dieser Shell.
-
- Achtung: Überall, wo beim Editieren eines Namen Kleinbuchstaben
- ======== automatisch in Großbuchstaben verwandelt werden, sollte
- man es tunlichst unterlassen einen Underscore ('_') ein-
- zugeben! Sonst herrscht eine Stimmung wie im 2. Welt-
- krieg.
-
-
- 1 Programmdaten
- =============
-
- Folgende Dateien gehören zur Shell:
-
- - SHELL.PRG das Programm
- - SHELL.RSC die Ressourcedatei
- - SHELL.INF Datei für Optionen
- - SHELL.TXT diese Anleitung
- - LQ800.PRT Druckeranpassung für den Epson-Drucker LQ-800
-
- Programmlänge: ca. 60 KByte
- Speicherplatzbedarf: ca. 120 KByte (mit TEMPUS gemessen)
-
- max. 200 Dateien pro (Unter-)Verzeichnis werden angezeigt
- max. 15 Dateien können ausgewählt werden
-
-
- 2 Dateien auswaehlen
- ==================
-
- Da mir die Dateiauswahlbox des AES nicht genügend Möglichkeiten bot
- habe ich mir zwei eigene Auswahlboxen programmiert.
-
- Eine für das Auswählen einer Datei, eine andere, um mehrere Dateien
- aus verschiedenen (Unter-)Verzeichnissen auszuwählen.
-
- Es werden Maximal 200 Dateien pro (Unter-)Verzeichnis angezeigt.
- 15 Dateien (beim Löschen auch Ordner) können ausgewählt werden.
-
- Die Funktionen der Auswahlboxen entsprechen weitgehend denen, die
- man von der des AES bzw. von Tempus gewöhnt ist. Im folgenden wer-
- den daher nur die Unterschiede erläutert.
-
- ACHTUNG: Bitte keinen '_' beim Auswählen neuer Dateien eingeben!!
- ========
-
- 2.1 Eine Datei auswählen
- ====================
-
- a) Der aktuelle Pfad ist nicht editierbar.
- Dies erschien mir nicht notwendig, da man 6 angemeldeten Lauf-
- werke und 9 einstellbare Extender per Mausklick auswählen kann.
-
- b) Der Slider in der eigentlichen Auswahlbox ist nicht mit gedrück-
- ter Maustaste verschiebbar.
- Dies bringt jedoch, da es sich häufig nur um wenige Dateien han-
- delt, die man zudem noch mit den Extendern weiter spezifizieren
- kann, keine größeren Nachteile mit sich.
-
- c) Die Box, die den ausgewählten Dateinamen enthält, kann -je nach
- Zweck der Auswahl- editierbar oder nicht editierbar sein.
-
- I. Sie ist editierbar
-
- Auch nicht existente Ordner bzw. Dateien können ausge-
- wählt werden.
-
- Beispiele: neuer Ordner, Editor.
-
- II. Sie ist nicht editierbar
-
- Nur existente Dateien bzw.Ordner können ausgewählt wer-
- den.
- Dies bedingt natürlich auch, daß bei einem Wechsel des
- Laufwerks, des (Unter-)Verzeichnisses oder des Extenders
- ein bereits gewählter Dateiname gelöscht wird.
-
- Beispiele: Compiler, Improver.
-
-
- 2.2 Mehrere Dateien auswählen
- =========================
-
- a) Der Pfad ist nicht editierbar und die Slider nicht verschiebbar
- (siehe 2.1 a) und b) )
-
- b) Neben den zwei Button 'Abbrechen' und 'Ok' (welches je nach
- Zweck der Auswahl verschiedene Namen haben kann) gibt es, wenn
- auch nicht existente Dateien ausgewählt werden können (z.B. Edi-
- tor,Makefile), ein weiteres mit Namen 'Neu', welches bewirkt,
- daß auch nicht existente Dateien ausgewählt werden können.
-
- c) Das Selektieren von mehreren Dateien ist in den beiden Boxen
- ohne(!!) Drücken der Shifttaste möglich. Deselektieren erfolgt
- durch nochmaliges Anklicken mit der Maus.
-
- d) Ein Mausklick auf den oberen Balken der beiden Boxen bewirkt,
- daß alle in dieser Box selektierten Dateien wieder deselektiert
- werden.
-
- e) Durch Anklicken von '>ADD>' werden die selektierten Dateien
- (falls noch nicht gewählt bzw. falls noch keine 15 Dateien ge-
- wählt wurden) in die rechte Box übernommen.
-
- f) Auf umgekehrtem Weg können sie dann durch Anklicken von '<DEL<'
- wieder aus der Menge der ausgewählten Dateien entfernt werden.
-
- g) '>ADD>' erscheint, wenn ein Element der linken Box angeklickt
- wird; '<DEL<' ,wenn ein Element der rechten Box angeklickt wird.
-
- h) Doppelklicks werden ignoriert.
-
- g) Durch Anlicken einer Datei in der rechten Box bei gleichzeitigem
- Drücken einer Shift-taste, wird in der Box, die normal den aktu-
- ellen Pfad enthält, der Pfad der gewählten Datei angezeigt.
-
-
- 3 Die Menüfunktionen
- ==================
-
- 3.1 Aufruf per Tastatur
- ===================
-
- Da nicht alle Atari-User reine Mausfreaks sind, können die wichtig-
- sten Funktionen der Shell auch mit Hilfe der Funktionstasten auf-
- gerufen werden. Die Belegung der Funktionstasten wird immer im
- Hintergrund angezeigt. Diese Button können auch mit der Maus ange-
- klickt werden.
-
- 3.2 Alles für Dateien
- =================
-
- Die Funktionen zur Dateibehandlung sind alle unter dem Menüpunkt
- 'Datei' zusammengefaßt.
-
- a) Kopieren von Dateien:
- Es handelt sich hierbei um ein normales Filecopy, wo Dateien
- verschiedener Ordner in einen Zielordner kopiert werden können.
- Dieser Zielordner kann hierbei neu erstellt werden. Auch ist
- es möglich Dateien, die auf dem gleichen Laufwerk kopiert werden
- sollen nur umzubenennen. Diese Eigenschaft ist besonders für
- Ordnungsfanatiker sehr praktisch.
-
- b) Löschen von Dateien:
- Mit dieser Funktion kann man sowohl Dateien beliebiger Ordner
- als auch ganze Ordner löschen. Ordner kann man selektieren,
- indem man während des Mausklicks eine Shift-Taste drückt.
-
- c) Datei-Info:
- Man kann sich verschiedene Informationen, die mit denen des GEM-
- Desktops übereinstimmen, über eine einzelne Datei oder einen
- ganzen Ordner anzeigen lassen. Einen ganzen Ordner wählt man
- wieder durch Drücken einer Shift-Taste während des Mausklicks.
-
- d) Neuer Ordner:
- Mit dieser Funktion ist es möglich, einen neuen Ordner in einem
- gewählten Verzeichnis anzulegen.
-
- e) Dateiname ändern:
- Nach dem Auswählen einer Datei kann man den Namen dieser Datei
- ändern. Hierbei ist es auch erlaubt, den Pfad der Datei zu än-
- dern.
-
- f) Ende:
- Das Programm wird ohne Sicherheitsabfrage verlassen.
-
- 3.3 Programme
- =========
-
- Hier kann man alle Programme, die man zur Programmentwicklung be-
- nötigt, bequem aufrufen und die zugehörigen Parameter mittels der
- Auswahlboxen übergeben.
-
- Die Pfade der hier aufgerufenen Programme können unter 'Optionen'
- unter 'Konfiguration' eingestellt werden. Falls ein Programm nicht
- aufgerufen werden kann, erfolgt eine Fehlermeldung.
-
- Unter dem Menüpunkt 'andere Programme' können beliebige Programme
- aufgerufen werden. Bei TOS-Programmen wird der Bildschirm gelöscht
- der Cursor eingeschaltet. Bei TTP-Programmen wird zusätzlich noch
- nach Parametern gefragt.
-
- Für Informationen zu den Menüpunkten 'Makefile mit/ohne Improver'
- siehe folgendes Kapitel.
-
- 3.4 Makefile
- ========
-
- Als kleinen Ersatz für die fehlenden Library-Funktionen habe ich
- ein recht komfortables Makefilesystem genommen.
-
- Ein Makefile wird dazu verwendet, ein Programm automatisch wieder
- compilieren und linken, wenn im Quelltext Änderungen vorgenommen
- worden sind.
-
- Ein Makefile besteht aus zwei Listen:
- Die erste enthält alle '.H'- und '.C'-Dateien, die zum Erstellen
- des Programms benötigt werden bzw. diejenigen, die überwacht werden
- sollen.
- Die zweite Liste besteht aus '.O'- und '.L'-Dateien, die dann zu
- einem fertigen Programm gelinkt werden sollen.
-
- Diese beiden Listen kann man mit Hilfe der Menüpunkte 'Neu' bzw.
- 'Ändern' erstellen. Hierbei man braucht zusätzlich zu den gewählten
- '.C'-Dateien die entsprechenden '.O'-Dateien nicht mehr zu wählen.
- Dies macht das Programm automatisch.
-
- Als nächster Schritt wird nun ein Makefile geladen.
- Hierbei wird geprüft, ob auch alle '.C'- und '.H'-Files vorhanden
- sind. Ist dies nicht der Fall, wird der Ladevorgang abgebrochen.
-
- Kommen wir nun zur eigentlichen Arbeit des Makefiles.
- Beim Laden des Makefiles wurde von allen '.C'- und '.H'-Dateien
- Zeit und Datum gespeichert.
-
- Klickt man nun auf einen der beiden entsprechenden Menüpunkte im
- Menü 'Programme', so werden diese Dateien alle daraufhin überprüft,
- ob sie zu einem späteren Zeitpunkt noch einmal abgespeichert wur-
- den.
-
- Ist dies bei einer '.C'-Datei der Fall, so wird sie neu compiliert;
- bei einer '.H'-Datei werden alle '.C'-Dateien neu compiliert. Fehlt
- die zu einer '.C'-Datei gehörige '.O'-Datei, so wird die '.C'-Datei
- auch compiliert.
-
- Es werden nun alle so ermittelten Dateien compiliert. Hierbei wer-
- den auch das Datum und die Zeit neu gesetzt.
-
- Falls alle Dateien ordnungsgemäß compiliert wurden, wird nun das
- Programm zusammengelinkt.
- Falls beim Compilieren einer Datei ein Fehler auftritt, kann man
- wählen, ob man in den Editor gehen möchte (Fehlerdatei wird auch
- geladen) oder nicht.
-
- Im Menü 'Optionen' unter 'Makefile' kann man einstellen, ob und,
- wenn ja, welcher Makefile beim Start des Programms geladen werden
- soll.
-
- 3.5 Drucken
- =======
-
- Dem Drucken von Listings kommt bei der Programmerstellung, beson-
- ders aber bei der Fehlersuche, eine große Bedeutung zu.
- Daher habe ich versucht, diesen Teil der Shell möglichst komforta-
- bel und einzelnen Wünschen leicht anpaßbar zu programmieren.
-
- Da ist zunächst einmal die einfache Druckeranpassung, durch die je-
- des Zeichen 'richtig' auf dem Drucker ausgegeben wird. Das Erstel-
- len der Druckeranpassung ist recht einfach. Man sollte nur beach-
- ten, den Code eines Zeichens in jeweils dreistelligen, dezimalen
- anzugeben (gegebenenfalls führende Nullen eingeben).
-
- Zusätzlich kann man noch mit einigen Optionen das Aussehen des
- Listings verändern. So sind der obere und untere, der rechte und
- der linke Rand einstellbar.
- Außerdem kann man noch Zeilen- und Seitennummerierung, Schönschrift
- und Endlospapier ein- bzw. ausschalten.
- Man kann auch einstellen, welche Druckeranpassung beim Start des
- Programms geladen werden soll. Diese muß dann im selben Verzeich-
- nis wie das Programm selber zu finden sein.
-
- Hat man nun das gewünschte Aussehen des Ausdrucks eingestellt und
- eine Datei zum Drucken ausgewählt, erscheint eine weitere Dialog-
- box, in der man die erste Zeilen- und Seitennummmer, falls einge-
- stellt, wählen kann.
-
- Man kann hierbei auch zwischen einseitigem und zweiseitigem Bedruk-
- ken des Papiers wählen. Bei zweiseitigem Drucken werden im ersten
- Durchgang die ungeraden, im zweiten die geraden Seiten gedruckt
- (bei ungerader Startseite umgekehrt).
-
- Zweiseitiges Bedrucken empfiehlt sich jedoch nur bei Druckern mit
- automatischem Einzelblatteinzug, da man sonst viel Arbeit mit dem
- Papierwechseln hat. Auch sollte man sich etwas mehr Zeit zum Druk-
- ken nehmen, da ein etwaiger Druckerspooler wegen des Papierwechsels
- nichts nützt.
-
- 3.6 Sonstiges
- =========
-
- In diesem Kapitel werden alle bisher nicht erwähnten Optionen be-
- schrieben.
-
- a) Disk-Info:
- Hier kann man sich über 6 angemeldete Laufwerke Informationen
- anschauen. Diese Informationen stimmen mit denen des GEM-Desk-
- tops überein.
-
- b) Extender:
- Mittels dieser Funktion kann man sich bis zu 8 Extender defi-
- nieren, mit denen man beim Auswählen von Dateien den Kreis der
- angezeigten Namen einschränken kann.
-
- c) Bestätigungen:
- Es erscheint eine Dialogbox, in der man Sicherheitsabfragen
- beim Löschen bzw. Kopieren von Dateien ein- oder ausschalten
- kann.
-
-
- 4 Verwendete Literatur
- ====================
-
- [1] Atari ST, GEM-Programmierung in C, Markt&Technik;
- [2] Atari ST INTERN, DATA BECKER;
- [3] Artikel "Ich glaub', ich steh' im Wald", Heft 4 in c't 1987;
- [4] Diverse Artikel in 'ST-Computer'
-